#ifndef APP_H
#define APP_H

#include <QString>
#include <QList>
#include <QDebug>
#include <QDateTime>

#include "logfileparser.h"
#include "sessionextractor.h"
#include "basket.h"
#include "session.h"
#include "apriori.h"
#include "fptree.h"
#include "fptreenode.h"

class App
{
public:
    App();
    ~App();

    void setFilename(QString filename);
    void setPopularPagesSize(int size);
    void setSessionDuration(int sessionDuration);
    void setOneHostOneUser(bool value);

    void run();

    bool debugMode;

private:
    QString filename;
    int popularPagesSize;       // How many of the most popular pages are significant
    int sessionDuration;
    bool oneHostOneUser;        // s

    QList<Session *> *sessions;

    // Objects of another tools
    LogFileParser *parser;
    SessionExtractor *extractor;
    Basket *basket;
    Apriori *apriori;
    FPTree *tree;
};

#endif // APP_H
